package com.tjetc;

import java.util.Arrays;
import java.util.Scanner;

public class _8Search {
    public static void main(String[] args) {
        // 二分查找
        int[] nums = {2, 4, 3, 1};
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查找的数字：");
        int num = scanner.nextInt();
        // 1.需要将原有数组进行排序
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));
        // 2.使用二分查找 必须要有顺序的数组
        // 如果没找到 一定是一个负数
        // 如果找到了 对应的索引
        int index = Arrays.binarySearch(nums, num);
        System.out.println(index);
        if (index < 0) {
            System.out.println("未找到");
        } else {
            System.out.println(nums[index]);
        }

        // 将来写代码一定不要自己造轮子
        // (1) 找原生的工具方法
        // (2) 找第三放 都没有封装的工具方法
        // (3) 组合原生+三方形成一个新的方法
        // (4) 只能自己写了（很少很少很少！！！）

    }
    public static void main1(String[] args) {
        // 查找 （1）顺序查找 （2）二分查找

        /*
            思路分析：
            1.输入
                输入一个要查找的数
            2.输出
                该数在数组中的索引
            3.处理逻辑
                （1）循环遍历查找
                （2）找到了输出对应的下标（索引）


         */
        Scanner scanner = new Scanner(System.in);
        int[] nums = {1, 2};
        System.out.println("请输入要查找的数字：");
        int num = scanner.nextInt();

        // 我们可以利用标志位
        int index = -1;

        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == num) {
                // 说明找到了
                index = i;
            }
        }
        // 说明没有找到
        if (index == -1) {
            System.out.println("没有找到");
        } else  {
            System.out.println("找到了");
        }

    }
}
